草庐IT

带指针的 C++ vector

全部标签

c++ - 错误:无法将 std::vector<std::basic_string<char>> 转换为 std::string*

作为C++的新手,我曾尝试在我的一个程序中创建一个简单的void函数以显示数组。但是,如标题所示,存在错误。我认为这是一个问题,因为我试图用与函数参数不同形式的数组来调用它。我不确定如何修改它。#include#includeusingnamespacestd;voiddisplay_array(stringarr[]){inti;for(i=0;ipaths;cout>current;while(current!="0"){paths.push_back(current);cin>>current;}display_array(paths);}感谢任何帮助。

c++ - 不能将 std::vector<T> 转换为 std::initializer_list<T> 吗?

我还以为有人可以做到这一点?然而,情况似乎并非如此。为什么?还是我做错了什么?#include#include#includeusingnamespacestd;voidfn(std::initializer_listi){for(intivalue:i){cout{4,5,6})return0;}demo我问这个的原因是因为我有一个带有初始化列表的类,我是从它派生的,但需要在将初始化列表传递给基类之前修改初始化列表。我怎样才能做到这一点? 最佳答案 有时旧的方法是最好的方法:只传入范围:voidfn(std::initialize

c++ - 插入 vector 变换

我之前发布了一个question关于连接两个std::vector的最佳方式,其中必须首先转换一个vector。虽然使用std::transform的明显解决方案可能不是理论上的最佳解决方案,但多重容量检查的成本不太可能很大。但是,如果我们考虑插入一个必须转换为另一个vector的更一般的问题,那么现在可能会涉及大量开销。执行此操作的最佳方法是什么? 最佳答案 @VaughnCato的approach为你的otherquestion使用boost::transform_iterator应该也适用于这个:autovec1begin=b

c++ - 使用 dgemm/dgemv 的矩阵 vector 积

在C++中使用Lapack让我有点头疼。我发现为fortran定义的函数有点古怪,所以我尝试在C++上创建一些函数,以便我更容易阅读正在发生的事情。无论如何,我没有让矩阵vector乘积如我所愿地工作。这是该程序的一个小示例。smallmatlib.cpp:#include#includeextern"C"{//productC=alphaA.B+betaCvoiddgemm_(char*TRANSA,char*TRANSB,constint*M,constint*N,constint*K,double*alpha,double*A,constint*LDA,double*B,cons

c++ - 类对象的 vector 是如何初始化的

下面的代码有一个Screen类。含成员:光标位置、屏幕宽度、屏幕高度和屏幕内容。它有另一个类Window_mgr,其中列表是屏幕的集合。每个屏幕在vector中都有一个特定的位置。我会用箭头标出代码中的行,这样你就不需要浏览完整的代码了。我的问题是,当我们列出初始化vector(假设为int)时,我们只需通过以下方式做到这一点:std::vectorivec{1,2,3,4};但在下面的代码中,我正在初始化对象类型Screen的vector。这是什么意思:VECTORscreens=VECTOR{{Screen(24,80,''),Screen(32,56,'r')}};我只是在谈论列

c++ - 返回 vector 元素的拷贝与返回指向 vector 元素的指针

我有一个这样的对象:classNode{floatx,y,z;size_ttag;boolisFree;std::vectorconnections;//Usually~10-100inlength};只是为了让您了解尺寸。这些节点对象的列表包含数百万个实例,我将其称为std::vectormasterNodes.我在其他地方有一个函数返回这些对象的容器,比如这个:std::vectorfind_nodes(){std::vectornodes;//copysomeelementsfrommasterNodesthatmeetourconditionsreturnnodes;}我的问题

c++ - 创建一个 c_vector

是否可以创建c_vector值为[12398-34](例如)在一行中?至于Icansee唯一可行的构造函数是:c_vector(vector_expressionconst&)需要VectorExpression,这似乎是所有其他类型的vector,如zero_vector和scalar_vector是动态分配的。有没有类似std::initializer_list的东西我可以使用的构造函数?或者什么VectorExpression我应该用于这个简单的任务吗? 最佳答案 我在assignment.hppheader中偶然发现了这个:

c++ - 指向函数的模板指针的部分模板特化

考虑以下抽象订阅类:templateclassSubscription{public:virtual~Subscription(){}virtualboolhandle(constTMessage&)=0;};在某些情况下,如果单独一个类可以多次实现这个抽象类会很方便-即使对于同一个TMessage-和不强制继承。为了实现这一点,我使用模板指针以下列方式运行:templateclassInvoker:publicSubscription{public:Invoker(TCaller*caller):m_caller(*caller){}virtualboolhandle(constTM

c++ - LLVM IR 中的一切都是指针吗?

我遍历程序的全局变量并对它们的类​​型感兴趣。对于测试,例如:#includeinti=0;intmain(){printf("lala%d\n",i);return0;}我得到的输出是:Globals:iType:14//14==>POINTERTYPEID!StackLock:Stack1FunctionArgument:i32*@i我的代码:for(Module::global_iteratorI=M.global_begin(),E=M.global_end();I!=E;++I){std::coutgetName().str()getType()->getTypeID()ge

c++ - 为什么下面的runner指针没有变为null?

为什么runner指针没有改成null?Node*runner=head->next;Node*reversedList=head;reversedList->next=nullptr;但在下面,它确实变为nullNode*reversedList=head;reversedList->next=nullptr;Node*runner=head->next; 最佳答案 在你发出下面的声明之后Node*runner=head->next;'runner'指向由'next'指向的地址内存(假设它是地址0x6543)。(head->nex